class Utils {
	// 创建构造实例，添加请求头ZXC#
	constructor() {
		this.baseUrl = 'https://code.itndedu.com/pz';
	}
	// 获取用户信息
	getUserInfo() {
		// 调用登录的api
		uni.login({
			success: (res) => {
				// console.log(111, res);
				// 设置请求参数
				this.request({
					url: '/auth/wxLogin',
					data: {
						code: res.code
					},
					// 成功时的响应
					success: (res) => {
						// console.log(222, res);
					}
				});
			}
		});
	}
	// 封装请求数据
	request(
		// 设置加载的状态，默认不需要加载
		option = {
			showLoading: false
		}
	) {
		// 判断url是否存在，不存在就不请求
		if (!option.url) {
			return false;
		}
		// 如果加载存在，显示加载按钮
		if (option.showLoading) {
			this.showLoading();
		}
		// http://159.75.169.224:7300/pz/auth/wxLogin
		// 设置请求数据
		uni.request({
			url: this.baseUrl + option.url,
			data: option.data ? option.data : {},
			header: option.header ? option.header : {},
			method: option.method ? option.method : 'get',
			// 根据请求结果的code来判断是否请求成功
			success: (response) => {
				uni.hideLoading();
				// 如果后端返回的数据异常
				if (response.data.code !== 10000) {
					// 将失败的结果返回
					if (option.fail && typeof option.fail == 'function') {
						option.fail(response);
					}
				} else {
					// 将成功的结果返回
					if (option.success && typeof option.success == 'function') option.success(response.data);
				}
			},
			// 请求失败
			fail: (response) => {
				uni.hideLoading();
				// console.log(333, response);
			}
		});
	}
	// 创建加载的loading效果
	showLoading() {
		const isShowLoading = uni.getStorageSync('isShowLoading');
		if (isShowLoading) {
			uni.hideLoading();
			uni.setStorageSync('isShowLoading', false);
		}
		uni.showLoading({
			title: '加载中...',
			complete: function () {
				uni.setStorageSync('isShowLoading', true);
			},
			fail: function () {
				uni.setStorageSync('isShowLoading', false);
			}
		});
	}
}

export default new Utils();
